﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL.Entity;
using DAL.Persistencia;

namespace NewTierra.Pages
{
    public partial class VerTodosSuppliers : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                PopularGridListSuppliers();
            }
        }

        protected void PopularGridListSuppliers()
        {
            try
            {
                SupplierDAL sd = new SupplierDAL();

                using (NewTierraEntities Con = new NewTierraEntities())
                {
                    int idStatus = Convert.ToInt32(HttpContext.Current.Session["IDsFiltroStatus"]);
                    int idTipoSupplier = Convert.ToInt32(HttpContext.Current.Session["IDsFiltroTipoSupplier"]);
                    int TipoPesquisa = Convert.ToInt32(HttpContext.Current.Session["TipoPesquisaSupplier"]);
                    int idCidade = Convert.ToInt32(HttpContext.Current.Session["IDsFiltroCidadeSupplier"]);

                    List<Supplier> s = new List<Supplier>();                          

                    if (TipoPesquisa == 0)
                    {
                        if (idTipoSupplier > 0 && idStatus > 0 && idCidade > 0)
                        {
                            s = Con.Suppliers.Where(p => p.TIPOSUPL_id == idTipoSupplier
                                                && p.STATUS_id == idStatus
                                                && p.CID_id == idCidade).ToList();                           

                        }
                        else if (idTipoSupplier > 0 && idStatus > 0)
                        {
                            s = Con.Suppliers.Where(p => p.TIPOSUPL_id == idTipoSupplier && p.STATUS_id == idStatus).ToList();                            
                        }
                        else if (idTipoSupplier > 0 && idCidade > 0)
                        {
                            s = Con.Suppliers.Where(p => p.TIPOSUPL_id == idTipoSupplier && p.CID_id == idCidade).ToList();
                        }
                        else if (idStatus > 0 && idCidade > 0)
                        {
                            s = Con.Suppliers.Where(p => p.STATUS_id == idStatus && p.CID_id == idCidade).ToList();
                        }
                        else if (idTipoSupplier > 0)
                        {
                            s = Con.Suppliers.Where(p => p.TIPOSUPL_id == idTipoSupplier).ToList();
                        }
                        else if (idStatus > 0)
                        {
                            s = Con.Suppliers.Where(p => p.STATUS_id == idStatus).ToList();
                        }
                        else if (idCidade > 0)
                        {
                            s = Con.Suppliers.Where(p => p.CID_id == idCidade).ToList();
                        }
                        else
                        {
                            s = Con.Suppliers.ToList();
                        }
                    }
                    else
                    {
                        if (idTipoSupplier > 0 && idStatus > 0 && idCidade > 0)
                        {
                            s = Con.Suppliers.Where(p => p.TIPOSUPL_id == idTipoSupplier
                                                && p.STATUS_id == idStatus
                                                && p.CID_id == idCidade).ToList();
                        }
                        else if (idTipoSupplier > 0 && idStatus > 0)
                        {
                            s = Con.Suppliers.Where(p => p.TIPOSUPL_id == idTipoSupplier && p.STATUS_id == idStatus).ToList();
                        }
                        else if (idTipoSupplier > 0 && idCidade > 0)
                        {
                            s = Con.Suppliers.Where(p => p.TIPOSUPL_id == idTipoSupplier && p.CID_id == idCidade).ToList();
                        }
                        else if (idTipoSupplier > 0)
                        {
                            s = Con.Suppliers.Where(p => p.TIPOSUPL_id == idTipoSupplier).ToList();
                        }
                        else if (idStatus > 0)
                        {
                            s = Con.Suppliers.Where(p => p.STATUS_id == idStatus).ToList();
                        }
                        else if (idCidade > 0)
                        {
                            s = Con.Suppliers.Where(p => p.CID_id == idCidade).ToList();
                        }
                        else
                        {
                            s = Con.Suppliers.ToList();
                        }
                    }

                    DataTable dt = new DataTable();
                    dt.Columns.Add("S_id");
                    dt.Columns.Add("S_nome");
                    dt.Columns.Add("S_email");
                    dt.Columns.Add("Class");

                    CategoriaDAL categd = new CategoriaDAL();

                    foreach (var supp in s.OrderBy(f => f.S_nome))
                    {
                        DataRow dr = dt.NewRow();

                        dr["S_id"] = supp.S_id;
                        dr["S_nome"] = supp.S_nome;
                        dr["S_email"] = supp.S_email;

                        S_Categoria sc = categd.ObterPorSupp(supp.S_id);

                        if (sc == null)
                        {
                            dr["Class"] = "";
                        }
                        else
                        {
                            dr["Class"] = categd.ObterPorSupp(supp.S_id).Categ_classificacao;
                        }

                        dt.Rows.Add(dr);
                    }

                    GridListSuppliers.DataSource = dt; //s.OrderBy(f => f.S_nome);
                    GridListSuppliers.DataBind();
                    
                    Provisorio();
                }

            }
            catch (Exception ex)
            {
                lblMsgListSuppliers.Text = ex.Message;
            }
        }

        protected void Provisorio()
        {
            try
            {
                PeriodosDAL pdal = new PeriodosDAL();

                foreach (GridViewRow item in GridListSuppliers.Rows)
                {
                    ImageButton imgProvisorio = (ImageButton)item.FindControl("imgProvisorio");

                    if (pdal.VerificaProvisorio(Convert.ToInt32(item.Cells[0].Text)))
                    {
                        imgProvisorio.ImageUrl = "../../images/Icones/provisorio.png";
                    }
                    else
                    {
                        //imgProvisorio.ImageUrl = "../../images/Icones/naoprovisorio.png";
                        imgProvisorio.Enabled = false;
                        imgProvisorio.Visible = false;
                    }
                }

            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }

        protected void imgProvisorio_Command(object sender, CommandEventArgs e)
        {
            try
            {
                new PeriodosDAL().AtualizaProvisorios(Convert.ToInt32(e.CommandArgument));
                PopularGridListSuppliers();
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }
    }
}